package com.atguigu.mobileplayer4.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;

import com.atguigu.mobileplayer4.R;

/**
 * 作者：杨光福 on 2016/5/21 14:18
 * 微信：yangguangfu520
 * QQ号：541433511
 * 作用： 在 Android 开发中，自定义 TitleBar 是常见的需求，通过继承 LinearLayout 可以创建一个可复用的标题栏组件
 * 对应的xml 是titlebar
 */
public class TitleBar extends LinearLayout {

    private final Context context;
    private View search;
    private View game;
    private View iv_history;

    //AttributeSet：是一个接口，包含从 XML 布局文件中解析出的属性名和属性值。
    public TitleBar(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.context = context;
    }


    /****
     * 在 Android 开发中，LinearLayout.onFinishInflate() 是一个重要的回调方法，
     * 当 View 及其所有子 View 从 XML 布局文件中解析完成后会被调用。
     */
    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        //在布局加载完成后，获取特定位置的子 View  getChildAt是从0开始的
        search = getChildAt(1);
        game = getChildAt(2);
        iv_history = getChildAt(3);
        MyOnClickListener myOnClickListener  = new MyOnClickListener();
        search.setOnClickListener(myOnClickListener);
        game.setOnClickListener(myOnClickListener);
        iv_history.setOnClickListener(myOnClickListener);
    }

    /***
     * 点击事件的抽象实现
     */
    class MyOnClickListener implements OnClickListener{

        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.tv_seache:
                    Toast.makeText(context,"搜索",Toast.LENGTH_SHORT).show();
                    break;
                case R.id.rl_game:
                    Toast.makeText(context,"游戏",Toast.LENGTH_SHORT).show();
                    break;
                case R.id.iv_history:
                    Toast.makeText(context,"播放历史",Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    }
}
